package com.base.pig.controller;


import com.base.pig.entity.ScAlarmRule;
import com.base.pig.util.R;
import com.base.pig.service.ScAlarmRuleService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.Map;

/**
 * @ProjectName
 * @Package com.pig4cloud.pig.lab.controller
 * @ClassName ScAlarmRuleController
 * @Description 报警规则控制器
 * @Company lab
 * @Author wangw
 * @Date 2020/4/29 0029 17:05
 * @UpdateUser
 * @UpdateDate
 * @UpdateRemark
 * @Version 1.0.0
 */
@RestController
@RequestMapping(value = "/alarmRule")
public class ScAlarmRuleController {

    @Autowired
    private ScAlarmRuleService scAlarmRuleService;

    /**
     * @param map : 请求参数集合{
     *            deviceType : 设备类型
     *            fieldsValue : 对应字典表映射value
     *            sn : 设备码
     *            current : 分页数
     *            size : 每页记录数
     *            }
     * @return
     * @Title 报警规则根据条件分页查询数据
     * @Description
     * @author wangw
     * @date 2020/6/16 0016 17:21
     */
    @PostMapping("/page")
    //@SysLog("获取报警规则列表")
    public R getDeviceList(@RequestBody Map map) {
        return scAlarmRuleService.getAlarmRuleList(map);
    }

    /**
     * @param scAlarmRule : 报警规则对象
     * @return
     * @Title 增加/编辑报警规则
     * @Description
     * @author wangw
     * @date 2020/6/16 0016 16:48
     */
    @PostMapping("/addOrUpdate")
    //@SysLog("增加/编辑报警规则")
    public R addAlarmRule(@RequestBody ScAlarmRule scAlarmRule) {
        return scAlarmRuleService.addOrUpdate(scAlarmRule);
    }

    /**
     * @param map : 请求参数集合{
     *            ids : 字符串数组,包含需要删除报警规则的主键id集合
     *            }
     * @return
     * @Title
     * @Description 删除报警规则
     * @author wangw
     * @date
     */
    @PostMapping("/delete")
    //@SysLog("删除报警规则")
    public R deleteAlarmRule(@RequestBody Map map) {
        return scAlarmRuleService.delete(map);
    }

    /**
     * @param map : 请求参数集合{
     *            ids : 字符串数组,包含需要删除报警规则的主键id集合
     *            upperLimit : 报警上限
     *            lowerLimit : 报警下限
     *            ranges : 突变范围
     *            timeout : 超时范围
     *            }
     * @return
     * @Title 批量更改报警规则
     * @Description
     * @author wangw
     * @date
     */
    @PostMapping("/arrayUpdate")
    //@SysLog("批量更改报警规则")
    public R arrayUpdate(@RequestBody Map map) {
        return scAlarmRuleService.arrayUpdate(map);
    }


    /**
     * @return
     * @Title 查询所有设备类型及对应的监测项项
     * @Description
     * @author wangw
     * @date
     */
    @GetMapping("/getDeviceMonitor")
    //@SysLog("获取所有设备类型及检测项")
    public R getDeviceMonitor() {
        return scAlarmRuleService.getDeviceMonitor();
    }
}
